![CloudWatch で Service Quotas をグラフ化・アラート通知できるようになりました!](https://devio2023-media.developers.io/wp-content/uploads/2019/05/amazon-cloudwatch.png)
CloudWatch で Service Quotas をグラフ化・アラート通知できるようになりました!
こんにちは 園部です。
今日は、 AWS Community Day Kanazawa ですね! Youtube で配信されているようなので、気になるセッションがある方は是非チェックしてはいかがでしょうか?
さて本日、CloudWatch で Service Quotas が扱えるようになりました!(対象サービスが限定されていています)
(2019/11/20 現在) 対象サービス
- Amazon EC2
- Amazon DynamoDB
- Amazon Kinesis Data Firehose
- AWS Key Management Service
- AWS CloudHSM
- Amazon CloudWatch
やってみる
今回は、Amazon EC2 (以下、EC2) の vCPU 上限を対象に、グラフ化とアラート設定・通知まで行います。
現在状況
- EC2(t2.micro) が4台起動
- vCPU の上限と利用状況( Service Quotas より)
- サービスクォータ: Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances
- 適用されたクォータ値: 2112
- 使用率: 4
CloudWatch で Service Quotas をグラフ化、アラート設定
CloudWatch
>>> メトリクス
>>> 使用
>>> AWSリソース
を選択
グラフ化したメトリクス
タブを選択
使用している 4 vCPU がグラフとして表示されています。
Service Quotas のメトリクスとするため、 SERVICE_QUOTA 関数を利用した数式を追加します。
Math expression
>>> Start with empty expression
を選択
「詳細」欄に、以下を入力します。
m1/SERVICE_QUOTA(m1)*100
Service Quotas メトリクスが追加されました。
- ResourceCount(使用): 4
- 式(ServiceQuotas): 0.189
アラート設定していきます。本来であれば、 90% を超えた場合などが良いと思いますが、検証のため、 0.2 を超えたらアラート通知とします。
EC2 インスタンスを増やしてアラート通知をします
- EC2(t2.micro) を 4台 → 6台 へ変更
- vCPU の上限と利用状況( Service Quotas より)
- サービスクォータ: Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances
- 適用されたクォータ値: 2112
- 使用率: 6
しばらくすると、CloudWatch グラフ上でも反映され、アラーム状態となります。
メールも通知されました。
さいごに
今回のアップデートで、Service Quotas の状況を CloudWatch で可視化、アラート設定が可能となりました。対応しているサービスは限定されますが、検証例とした EC2 は先日 vCPU での上限カウントへ変更となっていることもあり、不安なユーザーにはありがたい機能ではないかと思います。
(function(){
var corecss = document.createElement('link');
var themecss = document.createElement('link');
var corecssurl = "https://dev.classmethod.jp/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver=3.0.9b";
if ( corecss.setAttribute ) {
corecss.setAttribute( "rel", "stylesheet" );
corecss.setAttribute( "type", "text/css" );
corecss.setAttribute( "href", corecssurl );
} else {
corecss.rel = "stylesheet";
corecss.href = corecssurl;
}
document.getElementsByTagName("head")[0].insertBefore( corecss, document.getElementById("syntaxhighlighteranchor") );
var themecssurl = "/wp-content/themes/regeneration/plugins/syntaxhighlighter/styles/shCoreDevIO.css?ver=3.0.9b";
if ( themecss.setAttribute ) {
themecss.setAttribute( "rel", "stylesheet" );
themecss.setAttribute( "type", "text/css" );
themecss.setAttribute( "href", themecssurl );
} else {
themecss.rel = "stylesheet";
themecss.href = themecssurl;
}
//document.getElementById("syntaxhighlighteranchor").appendChild(themecss);
document.getElementsByTagName("head")[0].insertBefore( themecss, document.getElementById("syntaxhighlighteranchor") );
})();
SyntaxHighlighter.config.strings.expandSource = 'ソースを表示';
SyntaxHighlighter.config.strings.help = 'SyntaxHighlighterについて';
SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighter\n\n';
SyntaxHighlighter.config.strings.noBrush = '指定のブラシが見つかりませんでした: ';
SyntaxHighlighter.config.strings.brushNotHtmlScript = 'HTMLスクリプトのオプションのためにブラシが構成されませんでした: ';
SyntaxHighlighter.defaults['pad-line-numbers'] = false;
SyntaxHighlighter.defaults['tab-size'] = 2;
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();